<template>
  <div class="pb-120 assetsCenter">
    <div class="flex justify-between px-52 pt-31  box-border">
      <div class="flex-1 items-center text-center textColor1" v-for="(item, index) in typeList " :key="'type' + index"
        @click="onTabs(index)">
        <div class="font-32  text-center lh-53">{{ item.type }}</div>
      </div>
    </div>
    <div class="flex mx-52 mt-17">
      <span class="flex-1 border-b-color " :class="{ active_color: tab === 0 }"></span>
      <span class="flex-1 border-b-color" :class="{ active_color: tab === 1 }"></span>
      <span class="flex-1 border-b-color" :class="{ active_color: tab === 2 }"></span>
      <span class="flex-1 border-b-color" :class="{ active_color: tab === 3 }"></span>
    </div>
    <over-view v-if="tab === 0" :funds="funds" :key="tab"></over-view>
    <as-sets v-if="tab === 1" :funds="funds" :key="tab"></as-sets>
    <contract v-if="tab === 2" :funds="funds" :index="index" :key="tab"></contract>
    <financial v-if="tab === 3" :funds="funds" :index="index" :key="tab"></financial>

  </div>
</template>

<script>

import AsSets from "@/components/assetsCenter/assets"
import OverView from "@/components/assetsCenter/overview"
import Contract from "@/components/assetsCenter/contract"
import Financial from "@/components/assetsCenter/financial"
import Axios from "@/API/assets"
import {mapGetters} from "vuex";
export default {
  name: "assets-index",
  components: {
    AsSets,
    OverView,
    Contract,
    Financial
  },
  data() {
    return {
      type: 'left', //left 从左往右 right 从有王座
      list: [],
      timer: null,
      tab: 0,
      index: 0, // 每个组件的二级tab
      funds: {},
      typeList: [
        {
          type: this.$t('总览'),
        },
        {
          type: this.$t('现货账户'),
        },
        {
          type: this.$t('合约'),

        },
        {
          type: this.$t('理财'),
        },
      ]
    }
  },
  methods: {
    onTabs(val) {
      if (this.tab < val) {
        this.type = 'right'
      } else {
        this.type = 'left'
      }
      this.tab = val
    },
    getAssets() {
      if(this.userInfo.token){
        Axios.GetAllAssets().then((res) => {
          const { code, data } = res
          if (code) {
            //console.log('总资产数据',data)
            this.funds = data
          }
        })
      }
    },
  },
  created() {
    if(this.$route.query.tab){
       this.tab = this.$route.query.tab;
    }
    this.getAssets()
    this.timer = setInterval(() => {
      this.getAssets()
    }, 5000)
    if (Object.hasOwnProperty.call(this.$route.query, 'tab')) {
      this.tab = this.$route.query.tab / 1
      this.index = this.$route.query.index ? this.$route.query.index * 1 : 0
    }
  },
  activated() {
    clearInterval(this.timer)
    this.timer = setInterval(() => {
      this.getAssets()
    }, 5000)
    this.index = 0
  },
  deactivated() {
    clearInterval(this.timer)
    this.timer = null
  },
  beforeDestroy() {
    clearInterval(this.timer)
    this.timer = null
  },
  computed:{
    ...mapGetters('user', ['userInfo']),
  },
}
</script>

<style lang="scss" scoped>
.assetsCenter {
  width: 100%;
  box-sizing: border-box;
}

.active_color {
  @include themify() {
    border-bottom: 5px solid themed("color_main") !important;
  }

  border-radius: 2.208px;
}

.left-enter-active,
.left-leave-active,
.right-enter-active,
.right-leave-active {
  will-change: transform;
  transition: all 500ms;
}

.left-leave-active,
.right-leave-active {
  display: none;
}

.left-enter {
  opacity: 0;
  transform: translate3d(-100%, 0, 0);
}

.left-leave {
  opacity: 0;
  transform: translate3d(100%, 0, 0)
}

.right-enter {
  opacity: 0;
  transform: translate3d(100%, 0, 0);
}

.right-leave {
  opacity: 0;
  transform: translate3d(-100%, 0, 0)
}
</style>
